package com.fg.cloud.manager.mapper.product;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.manager.entry.product.ProductSpecKeyEntity;
import com.fg.cloud.manager.entry.product.ProductSpecModelEntity;
import com.fg.cloud.manager.entry.product.vo.ProductSpecModelVo;
import com.fg.cloud.manager.entry.product.vo.ProductSpecValueVo;
import com.fg.cloud.manager.mapper.BaseMapper;

public interface ProductSpecValueMapper extends BaseMapper{

	/**
	 * Description:批量新增规格值
	 * @param modelId
	 * @param specId
	 * @param valueList
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午12:24:55
	 */
	int batchInsert(@Param("modelId")Long modelId, @Param("specId")Long specId, 
			@Param("valueList")List<String> valueList);
	
	/**
	  * Description:动态新增规格键
	  * @param specKeyEntity
	  * @return
	  * @author dingjiang
	  * @date 2017年8月15日上午9:17:09
	 */
	int insertKey(ProductSpecKeyEntity specKeyEntity);
	
	/**
	 * Description:根据ID查询
	 * @param id
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午6:01:17
	 */
	ProductSpecModelVo find(@Param("id")Long id, @Param("facId")Long facId);
	
	/**
	 * Description:查询当前厂商的所有的模板
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月11日下午1:38:19
	 */
	List<ProductSpecModelVo> selectModels(@Param("facId")Long facId);
	
	/**
	 * Description:分页查询
	 * @param pageinfo
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午6:26:54
	 */
	List<ProductSpecModelVo> findLists(PageUtils<ProductSpecModelVo> pageinfo);
	
	/**
	 * Description:判断是否存在
	 * @param searchEntity
	 * @return
	 * @author dingjiang
	 * @date 2017年9月1日下午2:11:32
	 */
	Long judgeIsExist(ProductSpecModelEntity searchEntity);
	
	Long JudgeIsExist(ProductSpecModelEntity searchEntity);
	
	/**
	 * Description:批量删除规格值
	 * @param ids
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午5:10:22
	 */
	int deleteValue(@Param("ids")Long[] ids);
	
	int deleteValues(@Param("ids")Long[] ids);
	
	/**
	 * Description:全部删除规格值
	 * @param kid
	 * @return
	 * @author dingjiang
	 * @date 2017年9月20日下午5:15:58
	 */
	int deleteAll(@Param("kid")Long kid);
	
	/**
	 * Description:批量删除规格键
	 * @param ids
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午5:10:42
	 */
	int deleteKey(@Param("ids")Long[] ids, @Param("facId")Long facId);
	
	int deleteKeys(@Param("ids")Long[] ids, @Param("facId")Long facId);
	
	/**
	 * Description:批量删除规格模板
	 * @param ids
	 * @param facId
	 * @return
	 * @author dingjiang
	 * @date 2017年9月7日下午5:10:57
	 */
	int deleteModel( @Param("ids")Long[] ids, @Param("facId")Long facId );
	
	int update( @Param("id")Long id, @Param("modelName")String modelName );
	
	int updateKey( @Param("id")Long id, @Param("specName")String specName );
	
	List<ProductSpecValueVo> queryV( @Param("id")Long id );
	
	int updateBatch( @Param("list")List<ProductSpecValueVo> list );

	/**
	 * Description:通过规格模板名称查询模板信息
	 * @param facId 厂商ID
	 * @param modelName 规格模板名称
	 * @return ProductSpecModelEntity
	 * @author liushengchao
	 * @date  2017年9月27日上午11:08:37
	 */
	ProductSpecModelEntity selectModelByName(@Param("facId")Long facId,@Param("modelName")String modelName);
	
}